package com.ssy.lingxi.settle.accounts.service;

import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.dto.request.CorporateAccountConfigRequest;
import com.ssy.lingxi.dto.response.CorporateAccountConfigResponse;
import com.ssy.lingxi.settle.accounts.model.vo.request.CorporateAccountConfigUpdateVO;
import com.ssy.lingxi.settle.accounts.model.vo.request.GetMemberAccountConfigVO;
import com.ssy.lingxi.settle.accounts.model.vo.response.MemberAccountConfigVO;

/**
 * 对公账户配置
 * @author wrc
 * @date 2020/9/10
 */
public interface CorporateAccountConfigService {


    /**
     * 查询对公账户信息
     * @author wrc
     * @date 2020/9/10
     */
    Wrapper<CorporateAccountConfigResponse> corporateAccountConfig(Long memberId, Long memberRoleId);

    /**
     * 查询当前会员对公账户信息
     * @author 伍将
     * @date 2020/10/22
     * @param sysUser 登录用户
     * @return com.ssy.lingxi.common.response.Wrapper<com.ssy.lingxi.dto.response.CorporateAccountConfigResponse>
     **/
    Wrapper<CorporateAccountConfigResponse> getDetail(UserLoginCacheDTO sysUser);

    /**
     * 结算能力 结算规则配置 对公账户修改
     * @author wrc
     * @date 2020/9/10
     */
    Wrapper<Void> corporateAccountUpdate(CorporateAccountConfigRequest request, UserLoginCacheDTO sysUser);

    /**
     * 结算能力 结算规则配置 对公账户详情修改
     * @author 伍将
     * @date 2020/12/17
     * @param sysUser 登录用户
     * @param updateVO 更新数据
     **/
    Wrapper<Void> corporateAccountUpdateDetail(UserLoginCacheDTO sysUser, CorporateAccountConfigUpdateVO updateVO);

    /**
     * 获取会员对公账户配置
     * @author 伍将
     * @date 2020/12/28
     * @param getMemberAccountConfigVO 员账户配置 VO
     * @return 会员对公账户配置
     **/
    Wrapper<MemberAccountConfigVO> getMemberAccountConfig(GetMemberAccountConfigVO getMemberAccountConfigVO);

    /**
     * 获取会员对公账户配置
     * @author 伍将
     * @date 2021/2/23
     * @param getMemberAccountConfigVO:请求参数
     * @return 操作结果
     **/
    Wrapper<MemberAccountConfigVO> getMemberAccountByMobile(GetMemberAccountConfigVO getMemberAccountConfigVO);
}
